package com.sgcc.operate.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sgcc.common.core.annotation.Excel;
import com.sgcc.common.core.web.domain.BaseEntity;

/**
 * 收费明细对象 a_pay_flow
 * 
 * @author sgcc
 * @date 2021-03-26
 */
public class APayFlow extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd  HH:mm:ss")
    private Date createDate;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd  HH:mm:ss")
    private Date updateDate;

    /** 备注信息 */
    @Excel(name = "备注信息")
    private String remarks;

    /** 逻辑删除标记（0：显示；1：隐藏） */
    @Excel(name = "逻辑删除标记", readConverterExp = "0=：显示；1：隐藏")
    private String delFlag;

    /** 收费标识:本实体记录唯一标识，产生规则为流水号 */
    @Excel(name = "收费标识:本实体记录唯一标识，产生规则为流水号")
    private Long chargeId;

    /** 解款标识:本实体记录唯一标识，产生规则为流水号 */
    @Excel(name = "解款标识:本实体记录唯一标识，产生规则为流水号")
    private Long cashchkId;

    /** 账户标识:本实体记录唯一标识，产生规则为流水号 */
    @Excel(name = "账户标识:本实体记录唯一标识，产生规则为流水号")
    private Long acctId;

    /** 用户编号:用户编号，用于描述属性归属，选自用电客户用户编号 */
    @Excel(name = "用户编号:用户编号，用于描述属性归属，选自用电客户用户编号")
    private String consNo;

    /** 供电单位编号:用电客户所属的供电所，用于描述属性归属 */
    @Excel(name = "供电单位编号:用电客户所属的供电所，用于描述属性归属")
    private String orgNo;

    /** 收费年月:收费年月。 */
    @Excel(name = "收费年月:收费年月。")
    private String chargeYm;

    /** 收费日期:收费日期。 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "收费日期:收费日期。", width = 30, dateFormat = "yyyy-MM-dd  HH:mm:ss")
    private Date chargeDate;

    /** 记账年月:用于描述帐务记帐年月 */
    @Excel(name = "记账年月:用于描述帐务记帐年月")
    private String acctYm;

    /** 收费类型:收费类型：收取电费（包括违约金）、收取电费（包括违约金）及预收、收取预收、预收结转电费、退款、退费转预收(退电费、违约金)、收取业务费、退业务费等。 */
    @Excel(name = "收费类型:收费类型：收取电费", readConverterExp = "包=括违约金")
    private String typeCode;

    /** 收款金额:收费金额，描述收取客户的总金额。 */
    @Excel(name = "收款金额:收费金额，描述收取客户的总金额。")
    private BigDecimal rcvAmt;

    /** 本次调尾:本次调尾，上次调尾与应收金额计算出的调尾金额。 */
    @Excel(name = "本次调尾:本次调尾，上次调尾与应收金额计算出的调尾金额。")
    private BigDecimal thisChg;

    /** 上次调尾:上次调尾，上次计算收费时发生调尾计算结果值。 */
    @Excel(name = "上次调尾:上次调尾，上次计算收费时发生调尾计算结果值。")
    private BigDecimal lastChg;

    /** 收费人员:收费人员。 */
    @Excel(name = "收费人员:收费人员。")
    private String chargeEmpNo;

    /** 缴费方式:缴费方式：坐收、走收、充值卡、卡表购电、负控购电、坏账核销、物电互抵、代收、POS机刷卡、手机支付、代扣、特约委托、电话银行、网上银行、银行自助缴费终端 */
    @Excel(name = "缴费方式:缴费方式：坐收、走收、充值卡、卡表购电、负控购电、坏账核销、物电互抵、代收、POS机刷卡、手机支付、代扣、特约委托、电话银行、网上银行、银行自助缴费终端")
    private String payMode;

    /** 结算方式:结算方式：现金、转账支票、本票、承兑汇票、pos刷卡、充值卡、坏账核销、列账单、转账、内部转账 */
    @Excel(name = "结算方式:结算方式：现金、转账支票、本票、承兑汇票、pos刷卡、充值卡、坏账核销、列账单、转账、内部转账")
    private String settleMode;

    /** 结算票据号码:票据号码：转账支票、本票、承兑汇票的原始票据号码 */
    @Excel(name = "结算票据号码:票据号码：转账支票、本票、承兑汇票的原始票据号码")
    private String settleNoteNo;

    /** 结算票据银行:票据结算银行。 */
    @Excel(name = "结算票据银行:票据结算银行。")
    private String settleBankCode;

    /** 记账编号:记账编号，触发会计事务制作会计分录时，用于获取费用金额。 */
    @Excel(name = "记账编号:记账编号，触发会计事务制作会计分录时，用于获取费用金额。")
    private String acctNo;

    /** 收费备注:收费备注。可以对特殊的收费记录备注信息。如冲正原因等 */
    @Excel(name = "收费备注:收费备注。可以对特殊的收费记录备注信息。如冲正原因等")
    private String chargeRemark;

    /** 收款单位:用于记录收款动作单位 */
    @Excel(name = "收款单位:用于记录收款动作单位")
    private String rcvOrgNo;

    /** 收款部门:用于操作员所在部门 */
    @Excel(name = "收款部门:用于操作员所在部门")
    private String deptNo;

    /** -- */
    @Excel(name = "--")
    private String statusCode;

    /** -- */
    @Excel(name = "--")
    private Long relateId;

    /** -- */
    @Excel(name = "--")
    private String rcvedDate;

    /** 银行日期 */
    @Excel(name = "银行日期")
    private String bankDate;

    /** 支票人账号 */
    @Excel(name = "支票人账号")
    private String consBankAcct;

    /** 网点ID */
    @Excel(name = "网点ID")
    private Long branchId;

    /** 浙江专用记账批号,用来锁定已生成凭证且发送财务的数据 */
    @Excel(name = "浙江专用记账批号,用来锁定已生成凭证且发送财务的数据")
    private String statNo;

    /** 预收来源类型,为浙江区分预收来源使用 */
    @Excel(name = "预收来源类型,为浙江区分预收来源使用")
    private String prepayCode;

    /** 收费版本,用来区分程序的版本,目前暂用于新旧版本业务费区分,新版本为'0202'(第一个02表示业务费,第二个表示版本),旧版本为空 */
    @Excel(name = "收费版本,用来区分程序的版本,目前暂用于新旧版本业务费区分,新版本为'0202'(第一个02表示业务费,第二个表示版本),旧版本为空")
    private String payVer;

    /** 互转类型,表示预收互转是同户互转还是异户互转: 01: 同户,02: 异户 */
    @Excel(name = "互转类型,表示预收互转是同户互转还是异户互转: 01: 同户,02: 异户")
    private String transferType;

    /** 互转方向,表明从哪个预收类型转到预收类型,存储方法如下,如从普通预收到卡表预收,储存为:0104 */
    @Excel(name = "互转方向,表明从哪个预收类型转到预收类型,存储方法如下,如从普通预收到卡表预收,储存为:0104")
    private String transferDirection;

    /** 到账状态01表示已入账 */
    @Excel(name = "到账状态01表示已入账")
    private String arriveStatus;


    private String deptName;

    private BigDecimal rcvAmtInterval;

    public BigDecimal getRcvAmtInterval() {
        return rcvAmtInterval;
    }

    public void setRcvAmtInterval(BigDecimal rcvAmtInterval) {
        this.rcvAmtInterval = rcvAmtInterval;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setCreateDate(Date createDate) 
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }
    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }
    public void setChargeId(Long chargeId) 
    {
        this.chargeId = chargeId;
    }

    public Long getChargeId() 
    {
        return chargeId;
    }
    public void setCashchkId(Long cashchkId) 
    {
        this.cashchkId = cashchkId;
    }

    public Long getCashchkId() 
    {
        return cashchkId;
    }
    public void setAcctId(Long acctId) 
    {
        this.acctId = acctId;
    }

    public Long getAcctId() 
    {
        return acctId;
    }
    public void setConsNo(String consNo) 
    {
        this.consNo = consNo;
    }

    public String getConsNo() 
    {
        return consNo;
    }
    public void setOrgNo(String orgNo) 
    {
        this.orgNo = orgNo;
    }

    public String getOrgNo() 
    {
        return orgNo;
    }
    public void setChargeYm(String chargeYm) 
    {
        this.chargeYm = chargeYm;
    }

    public String getChargeYm() 
    {
        return chargeYm;
    }
    public void setChargeDate(Date chargeDate) 
    {
        this.chargeDate = chargeDate;
    }

    public Date getChargeDate() 
    {
        return chargeDate;
    }
    public void setAcctYm(String acctYm) 
    {
        this.acctYm = acctYm;
    }

    public String getAcctYm() 
    {
        return acctYm;
    }
    public void setTypeCode(String typeCode) 
    {
        this.typeCode = typeCode;
    }

    public String getTypeCode() 
    {
        return typeCode;
    }
    public void setRcvAmt(BigDecimal rcvAmt) 
    {
        this.rcvAmt = rcvAmt;
    }

    public BigDecimal getRcvAmt() 
    {
        return rcvAmt;
    }
    public void setThisChg(BigDecimal thisChg) 
    {
        this.thisChg = thisChg;
    }

    public BigDecimal getThisChg() 
    {
        return thisChg;
    }
    public void setLastChg(BigDecimal lastChg) 
    {
        this.lastChg = lastChg;
    }

    public BigDecimal getLastChg() 
    {
        return lastChg;
    }
    public void setChargeEmpNo(String chargeEmpNo) 
    {
        this.chargeEmpNo = chargeEmpNo;
    }

    public String getChargeEmpNo() 
    {
        return chargeEmpNo;
    }
    public void setPayMode(String payMode) 
    {
        this.payMode = payMode;
    }

    public String getPayMode() 
    {
        return payMode;
    }
    public void setSettleMode(String settleMode) 
    {
        this.settleMode = settleMode;
    }

    public String getSettleMode() 
    {
        return settleMode;
    }
    public void setSettleNoteNo(String settleNoteNo) 
    {
        this.settleNoteNo = settleNoteNo;
    }

    public String getSettleNoteNo() 
    {
        return settleNoteNo;
    }
    public void setSettleBankCode(String settleBankCode) 
    {
        this.settleBankCode = settleBankCode;
    }

    public String getSettleBankCode() 
    {
        return settleBankCode;
    }
    public void setAcctNo(String acctNo) 
    {
        this.acctNo = acctNo;
    }

    public String getAcctNo() 
    {
        return acctNo;
    }
    public void setChargeRemark(String chargeRemark) 
    {
        this.chargeRemark = chargeRemark;
    }

    public String getChargeRemark() 
    {
        return chargeRemark;
    }
    public void setRcvOrgNo(String rcvOrgNo) 
    {
        this.rcvOrgNo = rcvOrgNo;
    }

    public String getRcvOrgNo() 
    {
        return rcvOrgNo;
    }
    public void setDeptNo(String deptNo) 
    {
        this.deptNo = deptNo;
    }

    public String getDeptNo() 
    {
        return deptNo;
    }
    public void setStatusCode(String statusCode) 
    {
        this.statusCode = statusCode;
    }

    public String getStatusCode() 
    {
        return statusCode;
    }
    public void setRelateId(Long relateId) 
    {
        this.relateId = relateId;
    }

    public Long getRelateId() 
    {
        return relateId;
    }
    public void setRcvedDate(String rcvedDate) 
    {
        this.rcvedDate = rcvedDate;
    }

    public String getRcvedDate() 
    {
        return rcvedDate;
    }
    public void setBankDate(String bankDate) 
    {
        this.bankDate = bankDate;
    }

    public String getBankDate() 
    {
        return bankDate;
    }
    public void setConsBankAcct(String consBankAcct) 
    {
        this.consBankAcct = consBankAcct;
    }

    public String getConsBankAcct() 
    {
        return consBankAcct;
    }
    public void setBranchId(Long branchId) 
    {
        this.branchId = branchId;
    }

    public Long getBranchId() 
    {
        return branchId;
    }
    public void setStatNo(String statNo) 
    {
        this.statNo = statNo;
    }

    public String getStatNo() 
    {
        return statNo;
    }
    public void setPrepayCode(String prepayCode) 
    {
        this.prepayCode = prepayCode;
    }

    public String getPrepayCode() 
    {
        return prepayCode;
    }
    public void setPayVer(String payVer) 
    {
        this.payVer = payVer;
    }

    public String getPayVer() 
    {
        return payVer;
    }
    public void setTransferType(String transferType) 
    {
        this.transferType = transferType;
    }

    public String getTransferType() 
    {
        return transferType;
    }
    public void setTransferDirection(String transferDirection) 
    {
        this.transferDirection = transferDirection;
    }

    public String getTransferDirection() 
    {
        return transferDirection;
    }
    public void setArriveStatus(String arriveStatus) 
    {
        this.arriveStatus = arriveStatus;
    }

    public String getArriveStatus() 
    {
        return arriveStatus;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("createBy", getCreateBy())
            .append("createDate", getCreateDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("remarks", getRemarks())
            .append("delFlag", getDelFlag())
            .append("chargeId", getChargeId())
            .append("cashchkId", getCashchkId())
            .append("acctId", getAcctId())
            .append("consNo", getConsNo())
            .append("orgNo", getOrgNo())
            .append("chargeYm", getChargeYm())
            .append("chargeDate", getChargeDate())
            .append("acctYm", getAcctYm())
            .append("typeCode", getTypeCode())
            .append("rcvAmt", getRcvAmt())
            .append("thisChg", getThisChg())
            .append("lastChg", getLastChg())
            .append("chargeEmpNo", getChargeEmpNo())
            .append("payMode", getPayMode())
            .append("settleMode", getSettleMode())
            .append("settleNoteNo", getSettleNoteNo())
            .append("settleBankCode", getSettleBankCode())
            .append("acctNo", getAcctNo())
            .append("chargeRemark", getChargeRemark())
            .append("rcvOrgNo", getRcvOrgNo())
            .append("deptNo", getDeptNo())
            .append("statusCode", getStatusCode())
            .append("relateId", getRelateId())
            .append("rcvedDate", getRcvedDate())
            .append("bankDate", getBankDate())
            .append("consBankAcct", getConsBankAcct())
            .append("branchId", getBranchId())
            .append("statNo", getStatNo())
            .append("prepayCode", getPrepayCode())
            .append("payVer", getPayVer())
            .append("transferType", getTransferType())
            .append("transferDirection", getTransferDirection())
            .append("arriveStatus", getArriveStatus())
            .toString();
    }
}
